package com.uzai.console.service.tb.tborder;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.component.excel.template.TbRefundOrderExcelDemo;
import com.uzai.console.dto.tb.tborder.*;
import com.uzai.console.dto.tb.tbpunishorder.TbPunishOrderExportResultDto;
import com.uzai.console.dto.tb.tbpunishorder.TbPunishOrderQuery;
import com.uzai.console.dto.tb.tbtoken.TbTokenQuery;
import com.uzai.console.vo.exportinfo.ExportAmountVo;
import com.uzai.console.vo.tb.tborder.TbOrderInfoVo;
import com.uzai.console.vo.tb.tborder.TbOrderReportVo;
import com.uzai.console.vo.tb.tborder.TbOrderTokenVo;

import java.util.List;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface TbOrderService {

    /**
     * 查询淘宝订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderQuery
     * @return null
     */
    Page<TbOrderInfoVo> findTbOrderList(TbOrderQuery tbOrderQuery);

    /**
     * 查询淘宝订单详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    TbOrderInfoVo findTbOrderInfo(TbOrderDto tbOrderDto);

    /**
     * 查询淘宝订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderQuery
     * @return null
     */
    TbOrderReportVo findTbOrderRepot(TbOrderQuery tbOrderQuery);

    /**
     * 淘宝订单删除
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDelDto
     * @return null
     */
    Boolean delTbOrder(TbOrderDelDto tbOrderDelDto);

    /**
     * 订单确认收货
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    Boolean confirmReceive(TbOrderDto tbOrderDto);

    /**
     * 订单手动维权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    Boolean confirmRefund(TbOrderDto tbOrderDto);

    /**
     * 订单冻结
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    Boolean confirmFrozen(TbOrderDto tbOrderDto);

    /**
     * 订单解冻
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    Boolean confirmThaw(TbOrderDto tbOrderDto);

    /**
     * 订单解绑用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderUnbindUserDto
     * @return null
     */
    Boolean unbindUser(TbOrderUnbindUserDto tbOrderUnbindUserDto);

    /**
     * 订单绑定用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderBindUserDto
     * @return null
     */
    Boolean bindUser(TbOrderBindUserDto tbOrderBindUserDto);

    /**
     * 修改解冻时间
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderThawTimeDto
     * @return null
     */
    Boolean updateThawTime(TbOrderThawTimeDto tbOrderThawTimeDto);

    /**
     * 查询淘宝阿里妈妈联盟列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbTokenQuery
     * @return null
     */
    List<TbOrderTokenVo> findTbTokenList(TbTokenQuery tbTokenQuery);

    /**
     * 手动下载淘宝订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDownLoadDto
     * @return null
     */
    void downloadOrder(TbOrderDownLoadDto tbOrderDownLoadDto);

    /**
     * 手动下载淘宝订单(不入订单库，直接下载订单同步到业务库)
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDownLoadDto
     * @return null
     */
    void downloadOrder_notInStock(TbOrderDownLoadDto tbOrderDownLoadDto);

    /**
     * 通过API手动下载淘宝订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderApiDownLoadDto
     * @return null
     */
    void downloadOrderApi(TbOrderApiDownLoadDto tbOrderApiDownLoadDto);

    /**
     * 刷新淘宝订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    void refreshOrder(TbOrderDto tbOrderDto);

    /**
     * 查询所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderUnbindDtoQuery
     * @return null
     */
    Page<TbOrderInfoVo> findUnbindUserList(TbOrderUnbindDtoQuery tbOrderUnbindDtoQuery);

    /**
     * 查询所有未绑定用户订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderUnbindDtoQuery
     * @return null
     */
    TbOrderReportVo findUnbindUserReport(TbOrderUnbindDtoQuery tbOrderUnbindDtoQuery);

    /**
     * 删除所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDeleteUnbindDto
     * @return null
     */
    Boolean deleteUnbindUserList(TbOrderDeleteUnbindDto tbOrderDeleteUnbindDto);

    /**
     * 更新7天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @return null
     */
    void updateTbOrderUnReceivedList(Long merId);

    /**
     * 上传淘宝维权订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbRefundOrderExcelDemoList
     * @return null
     */
    void uploadTbPunishOrderFile(List<TbRefundOrderExcelDemo> tbRefundOrderExcelDemoList);

    /**
     * 追回返利
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderDto
     * @return null
     */
    Boolean rebateRefound(TbOrderDto tbOrderDto);

    /**
     * 淘宝订单查询结果导出数据
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param tbOrderExportResultDto
     * @return null
     */
    void exportByQeuryResult(TbOrderExportResultDto tbOrderExportResultDto);
}
